Skip to content

Honor Vuforia rate-limit delays in fixture retries - #3770

Merged
adamtheturtle merged 20 commits into
mainfrom
fix/3768-rate-limit-backoff
Oct 26, 2026
Merged

adamtheturtle merged 20 commits into
mainfrom
fix/3768-rate-limit-backoff

Conversation

@adamtheturtle

@adamtheturtle adamtheturtle commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

Real Vuforia fixture retries used a fixed ten-second delay for HTTP 429 responses. Use urllib3's Retry.parse_retry_after() for delay-seconds and HTTP-date values; otherwise use exponential full jitter capped at 30 seconds. Schedule at most ten transient attempts within 120 seconds, and surface the original exception and response when another attempt cannot fit the server's requested delay.

Set urllib3's delay cap above the retry budget so capped delays cannot cause early retries. Invalid headers fall back to jitter; parser overflow stops retry scheduling with the original Vuforia error.

The real backend installs this policy before its initial cleanup. Shared helpers execute once by default, restore preceding policies after nested scopes and failures, and prevent nested transient retry loops from multiplying the attempt budget. Retry logs include attempt, exception type, status and delay without request credentials. Requests or SDK processing polls already in flight retain their own timeout; the deadline governs retry scheduling.

Fixes #3768. Depends on #3769 and targets its branch so this diff contains only the backoff and policy changes.

No new test files or dependencies are added. The live-service retry callbacks are excluded from coverage; the custom HTTP parser has been removed.

Validation:

  • One-off offline checks: 12 header cases and 3 retry-budget cases passed, including malformed headers, HTTP dates, oversized delays, and preservation of the original throttle without sleeping or retrying early.
  • Existing target-name and model-target retry tests against the mock backends: 32 passed, 11 real-backend cases skipped.
  • Pre-commit and pre-push hooks, including partition checks and all type checkers, passed.
  • git diff --check passed.

Live-service and Docker validation remain with hosted CI. Backoff cannot guarantee recovery from persistent upstream throttling.

This branch was previously deployed

2 inactive deployments
vuforia — 49d8d4a1 Deployed Oct 26, 2026 by adamtheturtle via ci-tests (3.15, docs/) #2604
development — 49d8d4a1 Deployed Oct 26, 2026 by adamtheturtle via pages #2477
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Use bounded rate-limit-aware backoff for real Vuforia HTTP 429 responses

1 participant